// axios的简单封装
import axios from 'axios';

// 使用element-ui Message做消息提醒
import { Message } from "element-ui";


// 创建axios实例
const http = axios.create({
    // 通用地址的请求前缀
    baseURL: '/api',
    timeout: 10000, // 超时时间
})

// 请求拦截器
axios.interceptors.request.use(
    (config) => {
        // 发请求之前需要做的一些操作
        return config;
    },
    (error) => {
        return Promise.reject(error);
    }
)


// 响应拦截器
axios.interceptors.response.use(
    (response) => {
        // 成功接收响应数据后的一些处理
        return response;
    },
    (error) => {
        // 接收到响应的处理
        if (error && error.response) {
            // 根据响应码进行具体处理
            switch (error.response.status) {
                case 400:
                    error.message = "错误请求";
                    break;
                case 401:
                    error.message = "未授权,请重新登录";
                    break;
                case 403:
                    error.message = "拒绝访问";
                    break;
                case 404:
                    error.message = "请求错误,未找到该资源"
                    break;
            }
        }
        Message.error(error.message);
        return Promise.reject(error);
    }
)

export default http